//
//  TextAnimationTool.h
//  ToolLibrary
//
//  Created by mac on 2019/5/2.
//  Copyright © 2019 杨洋. All rights reserved.
//

#import <Foundation/Foundation.h>

typedef NS_ENUM(NSInteger, TextAnimationType)
{
    /** 纵向排版 */
    TextAnimationTypePortrait,
    /** 横向排版 */
    TextAnimationTypeTransverse
};

NS_ASSUME_NONNULL_BEGIN

@interface TextAnimationTool : NSObject

+ (instancetype)shareInstance;


/** 字体 默认[UIFont systemFontOfSize:30] */
@property (nonatomic, strong) UIFont *font;
/** 行间距 默认 30 */
@property (nonatomic, assign) CGFloat lineSpace;
/** 字间距 默认 10 */
@property (nonatomic, assign) CGFloat wordSpace;


/** 排版 类型【横向排版、纵向排版】 */
@property (nonatomic, assign) TextAnimationType type;





/** 字体大小 默认30 */
@property (nonatomic, assign) CGFloat fontSize;


/** 一行能放几个文字 (默认值：自适应) */
@property (nonatomic, assign) NSInteger lineNumber;




/** 父视图的宽度 superViewHeight需要同时设置(如果superView的frame是通过frame进行设置的，可以不进行设置，程序可以自行获取，如果是通过masonry设置的，需要手动设置，程序无法正确获取其frame) */
@property (nonatomic, assign) CGFloat superViewWidth;




/** 父视图的高度  superViewWidth需要同时设置(如果superView的frame是通过frame进行设置的，可以不进行设置，程序可以自行获取，如果是通过masonry设置的，需要手动设置，程序无法正确获取其frame) */
@property (nonatomic, assign) CGFloat superViewHeight;




/** 父视图的Size  size设置之后，superViewWidth与superViewHeight便无需再次设置(如果superView的frame是通过frame进行设置的，可以不进行设置，程序可以自行获取，如果是通过masonry设置的，需要手动设置，程序无法正确获取其frame) */
@property (nonatomic, assign) CGSize superViewSize;




/** 绘制完成的回调 */
@property (nonatomic, copy) void(^DrawAnimationFinishedBlock) (void);



/**
 文字绘制(字符串)(使用默认属性)

 @param text 需要绘制的字符串
 @param superView 父视图
 */
-(void)drawAnimationWithText:(NSString *)text andSuperView:(UIView *)superView;


/**
 文字绘制(字符串数组)(使用默认属性)

 @param textArr 需要绘制的文字数组
 @param superView 父视图
 */
-(void)drawAnimationWithTextArr:(NSArray<NSString *> *)textArr andSuperView:(UIView *)superView;


/**
 文字绘制(字符串)

 @param text 需要绘制的字符串
 @param type 类型
 @param fontColor 文字颜色
 @param font 字体
 @param superView 父视图
 */
-(void)drawAnimationWithText:(NSString *)text withType:(TextAnimationType)type fontColor:(UIColor *)fontColor font:(UIFont *)font superView:(UIView *)superView;


/**
 文字绘制(字符串数组)

 @param textArr 需要绘制的文字数组
 @param type 类型
 @param fontColor 文字颜色
 @param font 字体
 @param superView 父视图
 */
-(void)drawAnimationWithTextArr:(NSArray *)textArr withType:(TextAnimationType)type fontColor:(UIColor *)fontColor font:(UIFont *)font superView:(UIView *)superView;


/**
 文字展示(字符串)

 @param text 需要绘制的字符串
 @param type 类型
 @param fontColor 文字颜色
 @param font 字体
 @param superView 父视图
 */
-(void)showWithText:(NSString *)text withType:(TextAnimationType)type fontColor:(UIColor *)fontColor font:(UIFont *)font superView:(UIView *)superView;


/**
 文字展示(字符串数组)

 @param textArr 需要绘制的文字数组
 @param type 类型
 @param fontColor 文字颜色
 @param font 字体
 @param superView 父视图
 */
-(void)showWithTextArr:(NSArray *)textArr withType:(TextAnimationType)type fontColor:(UIColor *)fontColor font:(UIFont *)font superView:(UIView *)superView;

/**
 文字绘制(字符串)
 
 @param text 需要绘制的字符串
 @param bgColor 文字的背景颜色
 @param fontColor 文字颜色
 @param fontSize 文字字体大小
 @param superView 父视图
 */
-(void)drawAnimationWithText:(NSString *)text andFontBgColor:(UIColor *)bgColor andFontColor:(UIColor *)fontColor andFontSize:(NSInteger)fontSize superView:(UIView *)superView;


/**
 文字绘制(字符串数组)
 
 @param textArr 需要绘制的文字数组
 @param bgColor 文字的背景颜色
 @param fontColor 文字颜色
 @param fontSize 文字字体大小
 @param superView 父视图
 */
-(void)drawAnimationWithTextArr:(NSArray<NSString *> *)textArr andFontBgColor:(UIColor *)bgColor andFontColor:(UIColor *)fontColor andFontSize:(NSInteger)fontSize superView:(UIView *)superView;


/**
 文字展示(字符串)(使用默认属性)

 @param text 需要绘制的字符串
 @param superView 父视图
 */
-(void)showWithText:(NSString *)text superView:(UIView *)superView;

/**
 文字展示(字符串数组)(使用默认属性)

 @param textArr 需要绘制的文字数组
 @param superView 父视图
 */
-(void)showWithTextArr:(NSArray<NSString *> *)textArr superView:(UIView *)superView;


/**
 文字展示(字符串)
 
 @param text 需要绘制的字符串
 @param bgColor 文字的背景颜色
 @param fontColor 文字颜色
 @param fillColor 文字的填充颜色
 @param fontSize 文字字体大小
 @param superView 父视图
 */
-(void)showWithText:(NSString *)text andFontBgColor:(UIColor *)bgColor andFontColor:(UIColor *)fontColor andFillColor:(UIColor *)fillColor andFontSize:(NSInteger)fontSize superView:(UIView *)superView;


/**
 文字展示(字符串数组)
 
 @param textArr 需要绘制的文字数组
 @param bgColor 文字的背景颜色
 @param fontColor 文字颜色
 @param fillColor 文字的填充颜色
 @param fontSize 文字字体大小
 @param superView 父视图
 */
-(void)showTextArr:(NSArray<NSString *> *)textArr andFontBgColor:(UIColor *)bgColor andFontColor:(UIColor *)fontColor andFillColor:(UIColor *)fillColor andFontSize:(NSInteger)fontSize superView:(UIView *)superView;

/** 销毁文字绘制工具 */
-(void)destroySelf;

@end

NS_ASSUME_NONNULL_END
